-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat] PR lint, tsc, prettier 검사 workflow 구현 #120
Conversation
"build": "turbo run build", | ||
"build:apps": "turbo run build --filter=./apps/*", | ||
"build:packages": "turbo run build --filter=./packages/*", | ||
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"", | ||
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,json,md}\"", | ||
"prepare": "husky" | ||
"prepare": "husky", | ||
"check": "turbo run lint typecheck format:check --parallel" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
turpo.json 을 통해 script에 대한 명령를 정의할 수 있지않나요?
lint와 typecheck를 같이 진행하는 이유가 있을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
turpo.json 을 통해 script에 대한 명령를 정의할 수 있지않나요?
이 말씀은 아래처럼 check script를 turbo.json으로 옮겼으면 좋겠다는 말씀이실까요?!
// turbo.json
{
"tasks": {
"check": {
"dependsOn": ["lint", "typecheck", "format:check"],
"cache": true
}
}
}
// package.json
{
"scripts": {
"check": "turbo run check"
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lint와 typecheck를 같이 진행하는 이유가 있을까요?
이 workflow의 목적이 PR에 대해 lint, tsc, prettier 검사를 하는것이기 때문에 같이 진행하는것인데
같이 진행하지 않는다면 어떤 방법을 생각하시는 건지 궁금합니다!!
run: | | ||
echo "## Check Result" >> $GITHUB_STEP_SUMMARY | ||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | ||
echo "$(cat check.log)" >> $GITHUB_STEP_SUMMARY | ||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 부분은 어떤 동작을 하나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 workflow의 동작 내용과 결과를 출력하는 코드입니다! PR의 Checks 탭 > Check PR > Summary 에서 볼 수 있습니다
@seoko97 그리고 석호님께 여쭤보고싶었던 부분이 있는데요! 개인적으로 생각해봤을 땐 husky에서는 커밋메시지, 브랜치 명 검사만 하고 -> husky에서 lint 제거하기로 합의 완료 (석호님께서 따로 작업 예정) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏿
관련 이슈 번호
작업 내용
PR 포인트
실행 프로세스
main, develop 브랜치에 PR을 올리면 check.yml workflow에 의해 다음 명령어가 실행됩니다.
"check": "turbo run lint typecheck format:check --parallel"
eslint 룰 수정 내용
이 이슈랑은 관계 없는 내용이지만 이 논의에 따라서 마지막 import 문 뒤에 empty line을 강제하는 eslint 룰을 하나 추가했습니다~!
shards -> shared 오타 수정
shared 폴더 및 관련 설정값들이 shards로 오타가 나있어서 수정했습니다!!
고민과 학습내용
github action 환경에서 의존성을 설치할 때,
pnpm install --frozen-lockfile
옵션을 통해 lockfile(pnpm-lock.yaml)의 내용과 정확히 일치하는 의존성만 설치하여 CI/CD 환경에서 일관된 의존성을 보장합니다.스크린샷
workflow 동작 모습 (실패 상황 재연 테스트)